package com.hu.common.utils;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;

import java.util.Collections;

/**
 * mp代码生成器
 * by hu
 * @since 2023-07-26
 */
public class CodeGenerator {
    public static void main(String[] args) {
        generate();
    }

    public static void generate() {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/adopt-animal?serverTimezone=GMT%2b8", "root", "1999")
            .globalConfig(builder -> {
                builder.author("hu") // 设置作者
                        .enableSwagger() // 开启 swagger 模式
                        .fileOverride() // 覆盖已生成文件
                        .outputDir("E:\\Projects\\thesis\\Springboot+Vue宠物领养系统\\adopt-animal-back\\src\\main\\java\\"); // 指定输出目录
            })
            .packageConfig(builder -> {
                builder.parent("com.my.blogback") // 设置父包名
                        .moduleName(null) // 设置父包模块名
                        .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "E:\\Projects\\thesis\\Springboot+Vue宠物领养系统\\adopt-animal-back\\src\\main\\resources\\mapper\\")); // 设置mapperXml生成路径
            })
            .strategyConfig(builder -> {
                builder.entityBuilder().enableLombok();
                builder.mapperBuilder().enableMapperAnnotation().build();
                builder.controllerBuilder().enableHyphenStyle()  // 开启驼峰转连字符
                        .enableRestStyle();  // 开启生成@RestController 控制器
                builder.addInclude("sys_log") // 设置需要生成的表名
                        .addTablePrefix("t_", "sys_"); // 设置过滤表前缀: sys_user  --> user
            })
            .execute();
    }
}
